import java.io.Serializable;
import java.util.HashSet;


	class Auteur implements Serializable {

		// ************************************************************************************************************
		// Constantes
		// ************************************************************************************************************

		private static final long serialVersionUID = 1L;
		
		// ************************************************************************************************************
		// Attributs
		// ************************************************************************************************************

		private String _nom;
		private String _prenom;

		// Attributs d'Association
		private HashSet<Document> _documents;
		
		// ************************************************************************************************************
		// Constructeur
		// ************************************************************************************************************

		/**
		 * Constructeur. 
		 * @param nom			nom de l'auteur
		 * @param prenom		prenom de l'auteur
		 * @param documents		documents qu'il a produits
		 */
		public Auteur(String nom, String prenom) {

			this.setNom(nom);
			this.setPrenom(prenom);
			_documents = new HashSet<Document>() ;
			
		}

		// ************************************************************************************************************
		// Méthodes privées
		// ************************************************************************************************************
		
		// ************************************************************************************************************
		// Affecteurs
		// ************************************************************************************************************
			
		
		public String getNom(){
			return (this._nom);
		}

		public String getPrenom(){
			return (this._prenom);
		}

		
		public void setNom(String nom){
			this._nom= nom;
		}
		
		public void setPrenom(String prenom){
			this._prenom= prenom;
		}
		
		public HashSet<Document> getDocuments(){
			return this._documents;
		}
		
		public Document getDocument(String titre, String type) {
			for (Document d : this.getDocuments()) {
				if ( type.contentEquals(d.getClass().getName()) )
					return d;
			}
			return null;
		}
		
		public void ajoutDocument(Document d) {
			_documents.add(d);
		}
		
		public void supprimeDocument(Document d) {
			_documents.remove(d);
		}
}
